Variable length code decoding device and decoding method

ABSTRACT

A variable length code decoding device for decoding variable length code data, including: a table memory that stores a plurality of decoding process tables having a reference relationship therein; and a decoding control unit that is given a start address and an initial reference bit length of the table memory; and sequentially selects the decoding process tables according to the decoded data to control a process of decoding the variable length code data, wherein when referring to the decoding process table to perform an initial decoding of the variable length code data, the initial decoding process is conducted by a longer bit length to be clipped from the variable length code data for referring to the decoding process table than the bit length used when referring to the other portions of the decoding process table.

CROSS REFERENCE TO RELATED APPLICATION

This is a continuation of U.S. application Ser. No. 11/845,850, filedAug. 28, 2007. This application relates to and claims priority fromJapanese Patent Application No. 2006-231882, filed on Aug. 29, 2006. Theentirety of the contents and subject matter of all of the above isincorporated herein by reference.

BACKGROUND OF THE INVENTION

The present invention relates to a device for decoding a variable lengthcode, and more particularly to a variable length code decoding devicethat is capable of suppressing a table memory size which is used indecoding compressed data by the aid of a variable length code.

Japanese Patent Application Laid-Open Publication No. 2003-309471discloses a method in a related art of the present invention. InJapanese Patent Application Laid-Open Publication No. 2003-309471,attention is paid to a common bit of variable length code words whenreferring to a table for decoding, and bits that are brought from thevariable length codes and referred to are limited to a certain bitlength (m bits) in one decoding process table reference. In a code wordthat is made up of m bits or more, only the common bit portion at an MSBside is processed once so as to reduce one decoding process table sizedown to 2^(m) entries which are the number of entries corresponding to mbits. In a portion of the code word subsequent to the common bit,another decoding process table corresponding to a portion after thecommon bit is referred to, and the decoding process is continued tocomplete the decoding operation. In this situation, even in second andsubsequent decoding process table references, when the code word portionused for the table reference, that is, a portion after the bit that isdealt with as the common bit in the previous table reference is equal toor larger than m bits, the subsequent table reference is repeated at aportion of the code word portion from which the common bit at the MSBside is removed to complete the decoding process.

SUMMARY OF THE INVENTION

However, in the method disclosed in Japanese Patent ApplicationLaid-Open Publication No. 2003-309471, there is required that attentionis paid to the common bit of the code word which is made up of m bits ormore in the respective decoding process table references, and the tableused in the portion after the common bit, that is, the decoding processtable used in the subsequent reference is uniquely determined.Accordingly, it is necessary to uniquely determine the common bit at theMSB side with respect to all of the code words that are equal to or morethan m bits and constitute the code table. When hardware in which m isdetermined is used, the structure of the code table where the common bitat the MSB side does not fall within the m bits cannot deal with thedecoding process. In other words, with the structure of the code table,the minimum value that can be used by m, which obstructs a reduction inthe number of entries of the decoding process table.

In the method disclosed in Japanese Patent Application Laid-OpenPublication No. 2003-309471, because the subsequent decoding processtable from the portion after the common bit is referred to, when thecommon bit portion is shorter than the bit length used in the tablereference, a bit length of that difference is also used in thesubsequent table reference. That is, because that difference bit lengthis referred to by plural times, the extra decoding process table entriesare required as much.

As a tendency of the table used in the decoding, there exists such atrade off that a total of the size of the table required for decodingbecomes smaller as the clipped bit length is shorter, but the number oflooking up the table is increased, and the signal processing is delayed.However, in the method disclosed in Japanese Patent ApplicationLaid-Open Publication No. 2003-309471, the same bit length is alwaysclipped from the code word and the table is referred to in the tablethat is first referred to as well as the table that is subsequentlyreferred to. Therefore, it is impossible to adjust the clipped bitlength taking the trade off into consideration.

Under the circumstances, an object of the present invention is toprovide a variable length code decoding device which is capable ofadjusting the bit length that is referred to from the code word in onedecoding process table lookup not depending on the common bit portion ofthe code table, suppressing plural references of the bit that is clippedfrom the code word in the decoding process to suppress the undesiredentry included in the table necessary for the decoding, and adjustingthe trade off the size of the table and the coding rate which arerequired for decoding.

In structuring the decoding process table, a flag of 1 bit indicatingwhether the decoding process is completed or continued is disposed inthe respective entries of the table. The decoded value and thesignificant bit length are recorded in the entry of the decodingcompletion. Information that identifies the decoding process table usedin the subsequent processing and the bit length that is clipped from thecode word which is used when referring to the subsequent table arerecorded in the entry of the continuation of the decoding process. Whenthe decoding process starts, that is, when the initial table is referredto, the information for identifying the table to be used and the bitlength to be referred to from the MSB side of the code work in referringto the table are designated together with the code word.

In the decoding process, when the entry of the table is the processingcontinuation entry, the bit that has been already referred to is readfrom the code word, and a table to be subsequently referred to isselected on the basis of the contents of the entry. Then, when thesubsequent table is referred to, the bit length that is referred to fromthe code word is determined. The same processing is repeated in thesubsequent table. When the entry of the table becomes the processingcompletion entry, the decoded value is obtained from the contents of theentry.

According to the present invention, it is possible to adjust thetradeoff of the processing performance and the size of the tablerequired for decoding, and the processing performance can be effectivelyimproved with respect to the total size of the table used for decoding.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features, objects and advantages of the presentinvention will become more apparent from the following description whentaken in conjunction with the accompanying drawings wherein:

FIG. 1 is a diagram showing an example of a format of data that isstored in an entry of a decoding process table according to a firstembodiment of the present invention;

FIG. 2 is a diagram showing a code table according to the firstembodiment of the present invention;

FIG. 3 is a first table of an example of set of the decoding processtable corresponding to a variable length code table shown in FIG. 2;

FIG. 4 is a second table of an example of set of the decoding processtable corresponding to the variable length code table shown in FIG. 2;

FIG. 5 is a third table of an example of set of the decoding processtable corresponding to the variable length code table shown in FIG. 2;

FIG. 6 is a fourth table of an example of set of the decoding processtable corresponding to the variable length code table shown in FIG. 2;

FIG. 7 is a flowchart showing a variable length decoding procedure;

FIG. 8 is a diagram showing an example in which the tables shown inFIGS. 3 to 6 are stored in the memory;

FIG. 9 is a diagram showing a structural example of a device thatconducts the variable length decoding process; and

FIG. 10 is a diagram showing an example of a format of data which isstored in the entry of the decoding process table according to a secondembodiment of the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Now, a description will be given of embodiments of the present inventionwith reference to the accompanying drawings.

First Embodiment

According to the present invention, in decoding a variable length codecorresponding to a certain code table, there are used plural decodingprocess tables which are made up of entries in which the data of aformat shown in FIG. 1 is stored, and the decoding process tables aresequentially referred to, thereby conducting a decoding process.However, only one decoding process table may be required. A descriptionwill be first given of a structural example of a data format which isstored in the entry of the table which is a main feature of the presentinvention, and a method of producing the decoding device tablecorresponding to the code table will be described later. In FIG. 1, itis assumed that the entry of the table is 16 bits, but the bit width canbe changed depending on the implementation.

As shown in FIG. 1, there are two kinds of data that is stored in theentry of the table, that is, a format 1 and a format 2. It is possibleto discriminate which format is used according to the MSB of the storeddata. That is, when MSB is 0 (101), the format 1 is used, and when MSBis 1 (201), the format 2 is used. In order to identify the format, it ispossible to allocate the bit other than MSB, and it is possible toallocate a portion of 2 or more bits as the occasion demands.

The format 1 is a data format indicative of the variable length codedecoding process continuation, which is made up of a subsequent tablereference bit length 102 and a subsequent table address 103. In thepresent invention, since it is necessary to sequentially refer to thedecoding process table, the table that is subsequently referred to isdiscriminated by the aid of the subsequent table address 103. Thesubsequent table address 103 is an address on a memory in which thetable that is subsequently referred to is stored. The address is arelative address from the address immediately after a memory area inwhich the decoding process table to be now referred to has been stored.There is also proposed an installation using the address immediatelyafter that memory area, or an installation using the relative addressfrom the entry in which the subsequent table address is stored. In thedata format shown in FIG. 1, since one entry assumes 16 bits, an addressobtained by shifting an address of the 16-bits unit, that is, an addressof the byte unit to the right by one bit is stored, and one bit of theLSB of the address is saved. Alternatively, there is proposed aninstallation that stores the address of the byte unit.

It is possible to conduct the installation using an index number whichis capable of identifying the subsequent table instead of the subsequenttable address 103. When a table that specifies the location of the tableaccording to the index number is additionally prepared, it is possibleto specify the subsequent table according to the index number. That is,when the subsequent table address 103 is capable of specifying the tablethat is subsequently referred to, the additional table can be replacedby the subsequent table address 103.

The subsequent table reference bit length 102 is a portion indicatingthat some bits are clipped from the variable length code to refer to thetable at the time of referring to the subsequent table. That is, whenthe field is 1, 1 bit is clipped from the variable length code, and usedin referring to the subsequent table. When the field is 2, 2 bits areclipped for the same purpose. In this way, the bit length that isclipped from the variable length code is specified. When this bit lengthis n, the subsequent table is constituted by the 2^(n) entries.

The format 2 is a data format indicative of the variable length codedecoding completion, and made up of a significant bit length 204 and adecoded value 205. The decoded value 205 is a portion that stores thedecoded value of the variable length code therein. The code number isnormally stored as the decoded value, but in the case where the codenumber is further converted into another value through table look upprocessing, a case in which a final result is stored is also proposed.

The significant bit length 204 is indicative of a bit length which isactually clipped from the variable length code in presently looking upthe table. In referring to the decoding process table, the bit lengththat is clipped from the variable length code at the time of referringto the table is designated from the previous table lookup result or theparameter at the time of starting the decoding process. However, becausethe length of the final portion of the variable length code does notalways coincide with the bit length that is clipped when looking up thetable, there is required information on the significant bit length 204in order to specify a terminal of the variable length code which is nowbeing decoded. Because the significant bit length 204 is unnecessary inthe format 1 corresponding to the table reference other than theterminal portion of the variable length code, the significant bit length204 does not exist in the format 1.

The significant bit length 204 is also applicable in the bit patterndetection when the bit pattern cannot exist. The bit pattern that is notallocated as the variable length code can exist depending on theconfiguration of the variable length code. In order to detect the aboveabnormal bit pattern, 0 is registered in the significant bit length 204in the data of the entry where it is decided that there is the abnormalbit pattern. Since the significant bit length 204 is always equal to orlarger than 1 in the case where the significant bit length 204 can benormally decoded, the abnormality can be detected by detecting that thesignificant bit length 204 is 0.

FIG. 2 shows an example of the code table, and a description will begiven of a method of producing a set of the decoding process table whichis configured by the entry that stores the data of the format shown inFIG. 1 corresponding to FIG. 2 therein. A structural example of the setof the decoding process table corresponding to the variable length codetable shown in FIG. 2 is shown in FIGS. 3 to 6. In the presentinvention, plural tables, that is, the table set is normally required inthe decoding process, and the entire drawings shown in FIGS. 3 to 6correspond to an example of the set of the decoding process table.

Because the respective entries of the tables shown in FIGS. 3 to 6 aremade up of the data of the format shown in FIG. 1, the respectiveentries are the combination of the subsequent table address 103 and thesubsequent table reference bit length 102, or the combination of thesignificant bit length 204 and the decoded value 205.

The variable length code table shown in FIG. 2 represents a relationshipof the code number, the code word (variable length code), and the codebit number. The process for decoding the variable length code is toobtain a corresponding code number from the code word. In the actualapplication, there is a case in which a converting process is againconducted on the basis of the code number, and in this case, there isproposed that a value resulting from converting the code number isdirectly obtained as the decoded value. The code bit length isindicative of the bit length that constitutes the code word.

In the tables A to D that constitute the sets of the decoding processtables shown in FIGS. 3 to 6, the code word corresponds to a part of thevariable length code to be decoded. In the present invention, thevariable length code is referred to part by part to advance theprocessing. The code words in the tables A to D correspond to bits ofthe portion that is referred to from the variable length code inreferring to the respective tables.

In order to determine the entry that is referred to in the decodingprocess table reference, it is necessary to obtain the offset address ofthe entry. However, since the offset address is equivalent to a valueresulting from regarding the bit portion that is referred to from thevariable length code as a binary numeral, the offset address can beeasily calculated. In the tables A to D, the offset address indicateswhat number of entry, and in the structure of 16 bits per one entry, oneoffset address corresponds to 2 bytes.

The decoding table used in the present invention from the variablelength code table will be produced in the following procedure. First, itis determined by what bits the variable length code is referred to inthe decoding process table in principle. The decoding process tablesshown in FIGS. 3 to 6 correspond to a case in which the variable lengthcode is referred to 2 bits by 2 bits. In the case of referring to nbits, the decoding process table is made up of 2^(n) entries. For thatreason, as the number of reference bits increases more, the number oftables that constitute the set of the table necessary for the decodingprocess is more decreased. However, since the size of the individualdecoding process tables is increased exponentially, the size of the setof the tables is resultantly increased. However, when the number ofreference bits is small, the number of times at which the decodingprocess table is sequentially referred to in decoding the variablelength code that is long in the code word is increased, and the decodingprocess period of time is required. In addition, information forfollowing the subsequent table, that is, information corresponding tothe format 1 shown in FIG. 1 is increased, resulting in an increase inthe size of the set of the table used in the decoding process. Under thecircumstances, it is necessary to determine the reference bit lengthtaking those situations into consideration, but it is preferable thatthe decoding process table is normally referred to by about 2 to 4 bitsunit.

Upon determination of the bit length which is referred to in thedecoding process table, the code word is sectioned by its bit lengthunit in the code table. The production of the decoding process tableshown in FIGS. 3 to 6 corresponds to a case in which the variable lengthcode is referred to 2 bits by 2 bits.

In the production of the table that is first referred to, attention ispaid to first two bits from the MSB of the code word in the variablelength code table shown in FIG. 2. In this case, a table having all thecombination of 2 bits, that is, a table having the entries of 00, 01,10, and 11 are prepared. This table is shown as Table A in FIG. 3.

According to the code table of FIG. 2, since 00 and 11 conclude the codeword by 2 bits, the significant bit length 204 and the decoded value 205are stored in the above entries in the format 2 shown in FIG. 1 in TableA. Both of the code words 00 and 11 are 2 in the bit length of the codeword in the code table shown in FIG. 2, 2 is stored in the significantbit length 204. In the decoded value 205, 0 that is a code numbercorresponding to the code word 00 is stored in the entry of 00, and 1that is a code number corresponding to the code word 11 is stored in theentry of 11. Since 01 and 10 do not conclude the code word in two bits,the subsequent table address 103 and the subsequent table reference bitsequence 102 are stored in the format 1 shown in FIG. 1 in the entry inTable A. 2 is designated in the subsequent table reference bit length102 by referring to 2 bits from the code word at the time of referringto the subsequent table in the entries of 01 and 10. The name of thetable that is referred to is written in the subsequent table address 103since the subsequent table address 102 depends on how the table isstored in the memory.

When the MSB 2 bits of the code word that is referred to in Table A is01, because a process of decoding the bit subsequent to those 2 bits isconducted, Table B is prepared as the decoding process table. Thecontents of Table B are shown in FIG. 4. Table B is a table forconducting the decoding process with reference to a third bit and afourth bit counted from the MSB of the code word.

In Table B, attention is paid to 2 bits to conduct the processing, andtherefore tables of all the combinations of 2 bits are produced. In theentries of 00, 10, and 11, Table B is referred to subsequent to Table A,to thereby conclude the code word. Therefore, the significant bit length204 and the decoded value 205 are stored in the format 2 shown inFIG. 1. In this situation, because it is necessary to refer to theentire 2 bits to conclude the code word in the entries of 00, 10, and11, 2 is stored in the significant bit length 204. Taking the referencebit in Table A into consideration, 7 that is a code number correspondingto the code word 0100 is stored in the entry of 00, and 8 correspondingto the code word 0111 is stored in the entry of 11, in the decoded value205. Because the code word is not allocated to the entry of 01 in thecode table of FIG. 2, 0 indicative of an error is stored in thesignificant bit length 204 in the format 2 shown in FIG. 1. Since thesignificant bit length 0 cannot be normally realized, the significantbit length 0 can be detected as the error later.

When the MSB 2 bits of the code word that is referred to in Table A are10, Table C is prepared as the decoding process table in order toconduct the process of decoding the bit subsequent to two bits. Thecontents of Table C are shown in FIG. 5. Table C is a table forconducting the decoding process with reference to a third bit and afourth bit counted from the MSB of the code word.

Similarly, in Table C, attention is paid to 2 bits to conduct theprocessing, and therefore tables of all the combinations of 2 bits areproduced. In the entries of 00, 10, and 11, Table C is referred tosubsequent to Table A, to thereby conclude the code word. Therefore, thesignificant bit length 204 and the decoded value 205 are stored in theformat 2 shown in FIG. 1. In this situation, because it is necessary torefer to the entire 2 bits to conclude the code word in the entries of00, 2 is stored in the significant bit length 204. A first one bitportion concludes the code word, and therefore 1 is stored in theentries 10 and 11. That is, the entries of 10 and 11 are entriescorresponding to the same code word. The reason that two entries areused with respect to the same code word is because the second bit in theTable C reference is not the code word to be decoded but corresponds tothe leading portion of the subsequent code word, and therefore both of 0and 1 can be obtained according to the subsequent code word.

Taking the decoded value including the reference bit in Table A as withthe Table B reference bit in Table A into consideration, 4 that is acode number corresponding to the code word 1000 is stored in the entryof 00, and 3 corresponding to the code word 101 is stored in the entriesof 10 and 11.

Since the code word has not yet been concluded even with reference toTable A and Table C in the entry of 01 in Table C, the subsequent tableaddress 103 and the subsequent table reference bit length 102 are storedin the format 1 shown in FIG. 1. 1 is designated in the subsequent tablereference bit length 102. This is because the code word is alwaysconcluded within 1 bit in the subsequent table reference, and thereforethe waste of the table occurs in the 2-bits reference. That is, becausethe reference bit length can be set in each of the decoding processtables, the reference bit length is changed to suppress the size of thedecoding process table.

When the entry of 01 is referred to in Table C, because the process ofdecoding the bit subsequent to those 2 bits is conducted, Table D isprepared as the decoding process table. The contents of Table D areshown in FIG. 6. Table 5 is a table for conducting the decoding processwith reference to a fifth bit counted from the MSB of the code word.

In Table D, attention is paid to 1 bit to conduct the processing, andtherefore tables of all the combinations of 1 bit are produced. In theentries of 0 and 1, Table D is referred to subsequent to Tables A and C,to thereby conclude the code word. Therefore, the significant bit length204 and the decoded value 205 are stored in the format 2 shown inFIG. 1. One bit is referred to from the code word together with theentries of 0 and 1, to thereby conclude the code word, and therefore 1is stored in the significant bit length 204. Taking the decoded value205 including the reference bits in Tables A and C into consideration, acode number 2 corresponding to the code word 10010 is stored in theentry of 0, and the code number 5 corresponding to the code word 10011is stored in the entries of 1.

The specific variable length code table and the decoding process tablecorresponding to the variable length code table are described withreference to FIGS. 2 to 6. This method is capable of accepting anarbitrary variable length code which falls with a range where the codenumber can be stored in the decoded value 205. The decoding processtable is generally produced as follows. It is first determined how manybits of the variable length code are referred to in a certain decodingprocess table, and when the variable length code is concluded with thebit that has been referred to in that table, the format 2 shown in FIG.1 is registered. In this situation, when the variable length code isconcluded with the bit that is shorter than the referred bit, all thecombinations in the surplus bit portion are subjected to the sameregistration. When the variable length code is not concluded, thedecoding process table that is subsequently referred to in each of theentries is newly allocated. The newly allocated table is produced in thesame method as the first method while attention is paid to bit obtainedby removing the already referred portion from the variable length code.This operation is recursively conducted to produce all the tablesnecessary for the decoding process.

In the individual decoding process tables, when the entry is selectedfrom the table, the number of entries is determined according to thenumber of bits that are referred to from the variable length code. Ashas been described above, in the case of referring to n bits of thevariable length code, because the decoding process table is made up of2^(n) entries, the fact that an increase in n causes the size of thedecoding process table to exponentially increase needs to be taken intoconsideration.

In the decoding process according to the present invention, it ispossible to designate the bit length that is referred to from thevariable length code in each of the individual decoding process tables.On the other hand, the variable length code is so designed as toincrease the occurrence frequency of the generally shorter code length.In addition, the decoding process table corresponding to the MSB side ofthe variable length code is used each time in each of the decodingprocesses. Under the circumstances, there is also proposed a method inwhich the bit length that is referred to from the variable length codeis increased in only the table corresponding to the MSB side of thevariable length code, that is, the table that is first referred to.

A procedure of actually conducting the decoding process by the aid ofthe decoding process table is shown in FIG. 7. In conducting thedecoding process, it is necessary to designate the decoding processtable that is first used and designate the bit length that is referredto from the variable length code in referring to that table, in additionto the variable length code. In Step S301, an initial decoding processtable is selected on the basis of the designations. In Step S302, aninitial value of the reference bit length is set on the basis of thedesignations.

In Step S303, the reference bit length is clipped from the variablelength code for the reference of the decoding process. At this timepoint, the operation of discarding the referred portion from thevariable length code is not conducted. In Step S304, the entry that isselected by the reference bit which has been clipped in Step S303 isreferred to from the decoding process table that is selected in StepS304. In Step S305, the format of the referred entry is confirmed, andwhen the format is not the format 2, the processing is shifted to StepS306.

In Step S306, the reference bit length is discarded from the variablelength code. That is, a portion that is subsequently referred to isadvanced as much as the reference bit length by the variable lengthcode. In Steps S307 and S305, the decoding process table is changed overon the basis of the contents of the entry that is referred to in StepS305 to change the bit length that is referred to. Then, the processingis returned to Step S303 to repeat the processing.

When the format of the entry which is referred to in Step S305 is theformat 2, the value of the significant bit length 204 of the entry isconfirmed in Step S310. When the significant bit length 204 is 0, errorprocessing is conducted in Step S320, to thereby complete the decodingprocess. When the significant bit length 204 is not 0, the variablelength code is discarded as much as the bit length that is designated bythe significant bit length 204 in Step S311, and prepared for thedecoding process of the subsequent code word. Finally, in Step S312, thedecoded value is obtained from the decoded value 205 which is stored inthe entry.

An example in which the decoding process tables shown in FIGS. 3 to 6are stored in the memory is shown in FIG. 8. In the example shown inFIG. 8, the memory is thickly filled with an area 410 of Table A to anarea 440 of Table D in the stated order. It is possible to change thetable storage order, or gaps can be defined between the respectivetables. However, in this embodiment, since it is assumed that thesubsequent table address 103 is a relative address, it is preferablethat the tables are thickly arranged for the convenience of the bitlength which is allocated to the subsequent table address 103. Also,since it is assumed that the subsequent table address 103 has no code,the table that is designated as the table that is subsequently referredto from a certain table always needs to be arranged at a rear address.

In this embodiment, when the tables are arranged as shown in FIG. 8, thesubsequent table address 103 that is stored in the entry of the offsetaddress in Table A shown in FIG. 3 becomes 0 since the memory area 420of Table B exists immediately after the memory area 410 of Table A. Thesubsequent table address 103 that is stored in the entry of the offsetaddress 2 shifts 8 to the right by 1 bit and becomes 4 because thememory area 430 of Table C exists ahead 8 bytes immediately after thememory area 410 of Table A. Likewise, the subsequent table address 103that is stored in the entry of the offset address 1 in Table C shown inFIG. 5 becomes 0 since the memory area 440 of Table D exists immediatelyafter the memory area 430 of Table C.

FIG. 9 shows a structural example of the variable length code decodingdevice according to the present invention. In the structural exampleshown in FIG. 9, an initial table start address and an initial tablereference bit length are input to the variable length code decodingdevice in addition to the variable length code. The initial table startaddress is used to specify the location of the decoding process tablewhich is first referred to in conducting the decoding process. In thecase where there are provided sets of the decoding process tablescorresponding to plural kinds of code tables, it is possible to selectwhich decoding process table is used by designation of the initial tablestart address. The initial table reference bit length is a bit lengthwhich is clipped from the code word and referred to in referring to theinitial decoding process table. The table that is first referred toneeds to be input from the external because the bit length that isreferred to from the code word cannot be obtained from the interior ofthe decoding device.

A bit clip section 520 clips the bit that is used for the reference ofthe decoding process table, and discards a portion where the referenceprocessing has been completed to conduct the shift processing. A tableaddress section 530 calculates the address of the entry of the decodingprocess table on the basis of a start address of the decoding processtable which is selected for the decoding process and the reference bitthat is acquired from the bit clip section 520. A table memory controlsection 540 adjusts an access request to a table memory 550 from thetable address calculation section 530 and a table memory setting signalfrom the external, and outputs data that has been read from the tablememory 550 to a decoding control section 510. The table memory settingsignal from the external is used in writing the decoding process tablein the table memory 550. The table memory 550 is formed of a RAM, butwhen the table memory 550 deals with the decoding of a predeterminedcode table, a portion of the decoding process table corresponding to thecoding table can be formed of a ROM.

The decoding control section 510 manages the entire decoding process,outputs a shift command to the bit clip section 520, and instructs theclip bit quantity that is used for the reference of the decoding processtable. Also, the decoding control section 510 calculates the address ofthe subsequent decoding process table on the basis of the contents thatare read from the table memory 550 through the table memory controlsection 540, that is, the contents of the entry of the decoding processtable, updates the a start address of the decoding process table, andupdates the clip bit quantity that is used for the table reference. Inaddition, the decoding control section 510 detects the decoding processcompletion in referring to the decoding process table, and outputs thedecoded value.

Because the table memory 550 can be rewritten from the external by meansof the table memory control section 540, the table memory 550 isrewritten according to the code table to be decoded so as to deal withplural kinds of code tables. Also, when the capacity of the table memory550 is sufficient, it is possible to write all of the decoding processtable sets corresponding to the plural decoding tables in the tablememory 550 in advance so as to use the decoding process table sets. Thedecoding process table that is first used is selected according to aninitial table start address.

With the structure shown in FIG. 9, it is possible to conduct theoperation according to a flowchart shown in FIG. 7, and the variablelength decoding device can be realized.

According to the present invention, plural decoding process tables arenormally required with respect to a certain code table, but it ispossible to designate the bit length that is referred to from the codeword in each of the decoding process tables. Also, the referenceprocessing number of the decoding process table is decreased more as thereferred bit length is larger. Therefore, the average decoding rate whenconducting the plural decoding processes is improved. In addition,because the occurrence frequency of the shorter code word is high in thevariable length code, the longer bit is referred to in the decodingprocess table that is used at the time of referring to the bit of thefirst code word, to thereby effectively improve the decoding rate withrespect to an increase in the size of the decoding process table setcorresponding to a code table.

Furthermore, according to the present invention, the bit length that isreferred to in each of the decoding process tables can be controlledindependently of the variable length code allocation status. Therefore,the maximum referable number of the decoding process table is obtainedtaking the maximum processing time that is permissible for the decodingof one variable length code into consideration, and the decoding processtable can be structured according to the maximum referable number.

Second Embodiment

A second embodiment of the present invention is directed to an examplein which the data format that is stored in the decoding process entrywhich is used in the first embodiment is extended. The data formatcorresponding to the second embodiment is shown in FIG. 10. In the firstembodiment, two kinds of data formats consisting of the format 1 and theformat 2 are used. However, in the second embodiment, there are usedfour kinds of data formats consisting of a format 1 to a format 4.

The second embodiment is effective in a case where the decoded valuedoes not fall within 11 bits with respect to the first embodiment. Whenthe decoded value exceeds a range indicated by 11 bits, it is possibleto deal with this case by using the format 3 and the format 4.

In order to extend the data format, 2 bits are allocated to the formatidentification bit in the second embodiment, and the subsequent tablereference bit length 103 and the effective bit length 204 are made up of3 bits, respectively.

In the second embodiment, the value of the format 1 identification bitis 00, and the value of the format 2 identification bit is 10. Also, 11is allocated to the value of the format identification bit 3.

The format 4 is a format of data that is stored in a location that isindicated by an extension decoded value storage address 225 of theformat 3. Accordingly, because the format can be identified althoughthere is no format identification bit, there is no format identificationbit.

The format 1 and the format 2 are used in the same manner as that in thefirst embodiment except that the allocation of the bit is differentbetween the first embodiment and the second embodiment. The format 3 isused in the case where the decoded result does not fall within 11 bits,which cannot be dealt with by the format 2. When the format 3 is used,an address at which an extension decoded value 245 is stored isdesignated by the extension decoded value storage address 225.

The extension decoded value 245 is always stored in the format 4 at theaddress indicated by the extension decoded result storage address 225 ofthe format 3. Since the extension decoded result 245 is 16 bits, it ispossible to store the decoded value that exceeds 11 bits.

That is, a table corresponding to the decoding process table shown inthe first embodiment is prepared by the aid of the format 1, the format2, or the format 3, and the decoded value is prepared in the format 4 atthe address indicated by the format 3, separately.

The address that is designated by the extension decoded result storageaddress 225 is a relative address that starts at an address immediatelyafter a portion made up of the format 1 to the format 3 in the decodingprocess table that is currently referred to. However, an absoluteaddress can be designated according to the installation, or a relativeaddress that starts at the entry where the extension decoded resultstorage address 225 is stored can be designated.

Because the format 4 is prepared separately from the portions that aremade up of the format 1 to the format 3, it is possible to make the bitwidth of only the format 4 different from that of other formats such asthe 32 bits width. That is, the format having the bit width larger thanthat of the format 4 is used in the installation as the occasiondemands, thereby making it possible to deal with the decoded value whoserange is wide.

1. A variable length code decoding device for decoding variable lengthcode data, comprising: a table memory that stores a plurality ofdecoding process tables having a reference relationship therein; and adecoding control unit that is given a start address and an initialreference bit length of the table memory; and sequentially selects thedecoding process tables according to the decoded data to control aprocess of decoding the variable length code data, wherein whenreferring to the decoding process table to perform an initial decodingof the variable length code data, the initial decoding process isconducted by a longer bit length to be clipped from the variable lengthcode data for referring to the decoding process table than the bitlength used when referring to the other portions of the decoding processtable.
 2. A variable length code decoding device for decoding variablelength code data, comprising: a table memory that stores a plurality ofdecoding process tables having a reference relationship therein; and adecoding control unit that is given a start address and an initialreference bit length of the table memory, and sequentially selects thedecoding process tables according to the decoded data to control aprocess of decoding the variable length code data, wherein informationon a significant bit length is provided in the decoding process tablewhich is used when decoding a bit sequence including at least a finalportion for decoding of each of the variable length code data, and whenthe information indicating the bit length is a significant value, anerror process is conducted.
 3. A decoding method for a variable lengthcode decoding device that decodes variable length code data, the methodcomprising: storing a plurality of decoding process tables having areference relationship in a table memory; and giving a start address andan initial reference bit length of the table memory, and sequentiallyselecting the decoding process tables according to the decoded data tocontrol a process of decoding the variable length code data by adecoding control unit, wherein when referring to the decoding processtable to perform an initial decoding of the variable length code data,the initial decoding process is conducted by a longer bit length to beclipped from the variable length code data for referring to the decodingprocess table than the bit length used when referring to the otherportions of the decoding process table.
 4. A decoding method for avariable length code decoding device that decodes variable length codedata, the method comprising: storing a plurality of decoding processtables having a reference relationship in a table memory; and giving astart address and an initial reference bit length of the table memory,and sequentially selecting the decoding process tables according to thedecoded data to control a process of decoding the variable length codedata by a decoding control unit, wherein information on a significantbit length is provided in the decoding process table which is used whendecoding a bit sequence including at least a final portion for decodingof each of the variable length code data, and when the informationindicating the bit length is a significant value, an error process isconducted.